Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>DBM (computing)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/DBM_(computing)"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-DBM_computing rootpage-DBM_computing skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">DBM (computing)</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">This article is about the family of database engines. For other uses, see <a href="DBM_(disambiguation)" class="mw-redirect mw-disambig" title="DBM (disambiguation)">DBM</a>.</div>
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>
<p>In computing, a <b>DBM</b> is a <a href="Library_(computing)" title="Library (computing)">library</a> and <a href="File_format" title="File format">file format</a> providing fast, single-keyed access to data. A <a href="Key-value_database" class="mw-redirect" title="Key-value database">key-value database</a> from the original <a href="Unix" title="Unix">Unix</a>, <i>dbm</i> is an early example of a <a href="NoSQL" title="NoSQL">NoSQL</a> system.<sup id="cite_ref-2007-kew-apache_1-0" class="reference"><a href="#cite_note-2007-kew-apache-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2001-hazel-exim_2-0" class="reference"><a href="#cite_note-2001-hazel-exim-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2001-ladd-odonell-xhtml_3-0" class="reference"><a href="#cite_note-2001-ladd-odonell-xhtml-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>The original <i>dbm</i> library and file format was a simple <a href="Database_engine" title="Database engine">database engine</a>, originally written by <a href="Ken_Thompson" title="Ken Thompson">Ken Thompson</a> and released by <a href="AT%26T" title="AT&amp;T">AT&amp;T</a> in 1979. The name is a <a href="Three-letter_acronym" title="Three-letter acronym">three-letter acronym</a> for <i>DataBase Manager</i>, and can also refer to the family of database engines with APIs and features derived from the original <i>dbm</i>.
</p><p>The <i>dbm</i> library stores arbitrary data by use of a single key (a <a href="Primary_key" title="Primary key">primary key</a>) in fixed-size buckets and uses <a href="Hash_function" title="Hash function">hashing</a> techniques to enable fast retrieval of the data by key.
</p><p>The hashing scheme used is a form of <a href="Extendible_hashing" title="Extendible hashing">extendible hashing</a>, so that the hashing scheme expands as new buckets are added to the database, meaning that, when nearly empty, the database starts with one bucket, which is then split when it becomes full. The two resulting child buckets will themselves split when they become full, so the database grows as keys are added.
</p><p>The <i>dbm</i> library and its derivatives are pre-<a href="Relational_database" title="Relational database">relational databases</a>&nbsp;– they manage <a href="Associative_array" title="Associative array">associative arrays</a>, implemented as on-disk <a href="Hash_table" title="Hash table">hash tables</a>. In practice, they can offer a more practical solution for high-speed storage accessed by key, as they do not require the overhead of connecting and preparing queries. This is balanced by the fact that they can generally only be opened for writing by a single process at a time. An agent <a href="Daemon_(computer_software)" class="mw-redirect" title="Daemon (computer software)">daemon</a> can handle requests from multiple processes, but introduces <a href="Inter-process_communication" title="Inter-process communication">IPC</a> overhead.
</p>
<div class="mw-heading mw-heading2"><h2 id="Implementations">Implementations</h2></div>
<p>The original AT&amp;T <i>dbm</i> library has been replaced by its many successor implementations. Notable examples include:<sup id="cite_ref-2001-ladd-odonell-xhtml_3-1" class="reference"><a href="#cite_note-2001-ladd-odonell-xhtml-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li><i>ndbm</i> ("new dbm"), based on the original dbm with some new features.</li>
<li><a rel="nofollow" class="external text" href="https://gnu.org/s/gdbm/">GDBM</a> ("GNU dbm"), <a href="GNU" title="GNU">GNU</a> rewrite of the library implementing <i>ndbm</i> features and its own interface. Also provides new features like crash tolerance for guaranteeing data consistency.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup></li>
<li><i>sdbm</i> ("small dbm"), a <a href="Public_domain" title="Public domain">public domain</a> rewrite of <i>dbm</i>. It is a part of the standard distribution for <a href="Perl" title="Perl">Perl</a> and is available as an external library for <a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a>.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></li>
<li><i>qdbm</i> ("Quick Database Manager"), a higher-performance <i>dbm</i> employing many of the same techniques as Tokyo/Kyoto Cabinet. Written by the same author before they moved on to the cabinets.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup></li>
<li><i>tdb</i> ("Trivial Database"), a simple database used by <a href="Samba_(software)" title="Samba (software)">Samba</a> that supports multiple writers. Has a gdbm-based API.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Berkeley_DB" title="Berkeley DB">Berkeley DB</a>, 1991 replacement of ndbm by <a href="Sleepycat_Software" title="Sleepycat Software">Sleepycat Software</a> (now <a href="Oracle_Corporation" title="Oracle Corporation">Oracle</a>) created to get around the AT&amp;T Unix copyright on <a href="Berkeley_Software_Distribution" title="Berkeley Software Distribution">BSD</a>. It features many extensions like parallelism, transactional control, hashing, and B-tree storage.</li>
<li><a href="Lightning_Memory-Mapped_Database" title="Lightning Memory-Mapped Database">LMDB</a>: <a href="Copy-on-write" title="Copy-on-write">copy-on-write</a> <a href="Memory-mapped_file" title="Memory-mapped file">memory-mapped</a> <a href="B%2B_tree" title="B+ tree">B+ tree</a> implementation in <a href="C_(programming_language)" title="C (programming language)">C</a> with a Berkeley-style API.</li></ul>
<p>The following databases are dbm-inspired, but they do not directly provide a dbm interface, even though it would be trivial to wrap one:
</p>
<ul><li><a href="Cdb_(software)" title="Cdb (software)">cdb</a> ("constant database"), database by <a href="Daniel_J._Bernstein" title="Daniel J. Bernstein">Daniel J. Bernstein</a>, database files can only be created and read, but never be modified</li>
<li><a href="Tkrzw" title="Tkrzw">Tkrzw</a>, an Apache 2.0 licensed successor to Kyoto Cabinet and Tokyo Cabinet</li>
<li><a href="WiredTiger" title="WiredTiger">WiredTiger</a>: database with traditional row-oriented and column-oriented storage.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Availability">Availability</h2></div>
<p>As of 2001, the <i>ndbm</i> implementation of DBM was standard on Solaris and IRIX, whereas <i>gdbm</i> is ubiquitous on <a href="Linux" title="Linux">Linux</a>. The Berkeley DB implementations were standard on some free operating systems.<sup id="cite_ref-2001-hazel-exim_2-1" class="reference"><a href="#cite_note-2001-hazel-exim-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-fuzz_10-0" class="reference"><a href="#cite_note-fuzz-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> After a change of licensing of the Berkeley DB to <a href="GNU_AGPL" class="mw-redirect" title="GNU AGPL">GNU AGPL</a> in 2013, projects like <a href="Debian" title="Debian">Debian</a> have moved to LMDB.<sup id="cite_ref-deb_11-0" class="reference"><a href="#cite_note-deb-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Reliability">Reliability</h2></div>
<p>A 2018 <a href="American_fuzzy_lop_(fuzzer)" class="mw-redirect" title="American fuzzy lop (fuzzer)">AFL</a> <a href="Fuzzing" title="Fuzzing">fuzzing</a> test against many DBM-family databases exposed many problems in implementations when it comes to corrupt or invalid database files. Only <a href="Cdb_(software)" title="Cdb (software)"><i>freecdb</i></a> by <a href="Daniel_J._Bernstein" title="Daniel J. Bernstein">Daniel J. Bernstein</a> showed no crashes. The authors of gdbm, tdb, and lmdb were prompt to respond. Berkeley DB fell behind due to the sheer amount of other issues;<sup id="cite_ref-fuzz_10-1" class="reference"><a href="#cite_note-fuzz-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> the fixes would be irrelevant to open-source software users due to the licensing change locking them back on an old version.<sup id="cite_ref-deb_11-1" class="reference"><a href="#cite_note-deb-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Ordered_Key-Value_Store" class="mw-redirect" title="Ordered Key-Value Store">Ordered Key-Value Store</a></li>
<li><a href="Embedded_database" title="Embedded database">Embedded database</a></li>
<li><a href="Flat_file_database" class="mw-redirect" title="Flat file database">Flat file database</a></li>
<li><a href="ISAM" title="ISAM">ISAM</a></li>
<li><a href="Key%E2%80%93value_database" title="Key–value database">Key–value database</a></li>
<li><a href="Mobile_database" title="Mobile database">Mobile database</a></li>
<li><a href="NoSQL" title="NoSQL">NoSQL</a></li>
<li><a href="Semaphore_(programming)" title="Semaphore (programming)">Semaphore (programming)</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-2007-kew-apache-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-2007-kew-apache_1-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKew2007">Kew 2007</a>, p.&nbsp;80: "DBMs have been with us since the early days of computing, when the need for fast keyed lookups was recognized. The original DBM is a UNIX-based library and file format for fast, highly-scalable keyed access to data. It was followed (in order) by NDBM ('new DBM'), GDBM ('GNU DBM'), and the Berkeley DB. This last is by far the most advanced, and the only DBM under active development today. Nevertheless, all of the DBMs from NDBM onward provide the same core functionality used by most programs, including Apache. A minimal-implementation SDBM is also bundled with <a href="Apache_Portable_Runtime" title="Apache Portable Runtime">APR</a>, and is available to applications along with the other DBMs.<br>Although NDBM is now old - like the city named New Town ('Neapolis') by the Greeks in about 600BC and still called Naples today - it remains the baseline DBM. NDBM was used by early Apache modules such as the Apache 1.x versions of <code>mod_auth_dbm</code> and <code>mod_rewrite</code>. Both GDBM and Berkeley DB provide NDBM emulations, and Linux distributions ship with one or other of these emulations in place of the 'real' NDBM, which is excluded for licensing reasons. Unfortunately, the various file formats are totally incompatible, and there are subtle differences in behaviour concerning database locking. These issues led a steady stream of Linux users to report problems with DBMs in Apache 1.x."</span>
</li>
<li id="cite_note-2001-hazel-exim-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-2001-hazel-exim_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-2001-hazel-exim_2-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFHazel2001">Hazel 2001</a>, p.&nbsp;500: "The most common [single-key] format is called DBM. Most modern versions of Unix have a DBM library installed as standard, though this is not true of some older systems. The two most common DBM libraries are <i>ndbm</i> (standard on Solaris and IRIX) and Berkeley DB Version 2 or 3 (standard on several free operating systems). Exim supports both of these, as well as the older Berkeley DB Version 1, <i>gdbm</i>, and <i>tdb</i>."</span>
</li>
<li id="cite_note-2001-ladd-odonell-xhtml-3"><span class="mw-cite-backlink">^ <a href="#cite_ref-2001-ladd-odonell-xhtml_3-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-2001-ladd-odonell-xhtml_3-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFLaddO'Donnell2001">Ladd &amp; O'Donnell 2001</a>, pp.&nbsp;823–824: "Most UNIX systems have some kind of DBM database. DBM is a set of library routines that manages data files consisting of key and value pairs. The DBM routines control how users enter and retrieve information from the database. Although it isn't the most powerful mechanism for storing information, using DBM is a faster method of retrieving information than using a flat file. Because most UNIX sites use one of the DBM libraries, the tools you need to store your information in a DBM database are readily available.<br>Almost as many flavors of the DBM libraries exist as there are UNIX systems. Although most of these libraries are compatible with each other, they all basically work the same way...<br>A list follows of some of the most popular DBM libraries available:<div><ul><li><b>DBM</b> - DBM stores the database in two files. The first has the extension <code>.Pag</code> and contains the bitmap. The second, which has the extension <code>.Dir</code>, contains the data.</li><li><b>NDBM</b> - NDBM is much like DBM but with a few additional features; it was written to provide better storage and retrieval methods. Also, NDBM enables you to open many databases, unlike DBM, in which you are allowed to have only one database open within your script. Like DBM, NDBM stores its information in two files using the extensions <code>.Pag</code> and <code>.Dir</code>.</li><li><b>SDBM</b> - SDBM comes with the Perl archive, which has been ported to many platforms. Therefore, you can use DBM databases as long as a version of Perl exists for your computer. SDBM was written to match the functions provided with NDBM, so portability of code shouldn't be a problem. Perl is available on just about all popular platforms.</li><li><b>GDBM</b> - GDBM is the GNU version of the DBM family of database routines. GDBM also enables you to cache data, reducing the time that it takes to write to the database. The database has no size limit; its size depends completely on your system's resources. GDBM database files have the extension <code>.Db</code>. Unlike DBM and NDBM, both of which use two files, GDBM only uses one file.</li><li><b>Berkeley db</b> - The Berkeley db expands on the original DBM routines significantly. The Berkeley db uses hashed tables the same as the other DBM databases, but the library also can create databases based on a sorted balanced binary tree (<code>BTREE</code>) and store information with a record line number (<code>RECNO</code>). The method that you use depends completely on how you want to store and retrieve the information from a database. Berkeley db creates only one file, which has no extension."</li></ul></div></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.gnu.org.ua/software/gdbm/manual/Crash-Tolerance.html">"Crash Tolerance"</a>. <i>GDBM manual</i><span class="reference-accessdate">. Retrieved <span class="nowrap">3 October</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://queue.acm.org/detail.cfm?id=3487353">"Crashproofing the Original NoSQL Key-Value Store"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">3 October</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFyigit" class="citation web cs1">yigit, ozan. <a rel="nofollow" class="external text" href="http://www.cse.yorku.ca/~oz/sdbm.bun">"sdbm.bun"</a>. <i>cse.yorku.ca</i><span class="reference-accessdate">. Retrieved <span class="nowrap">8 May</span> 2019</span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/ruby/sdbm">"Ruby SDBM library"</a>. <i>SDBM on Github</i>. <q>Note that Ruby used to ship SDBM in the standard distribution up until version 2.7, after which it was made available only as an external library, similarly to the DBM and GDBM libraries, removed from the standard library in Ruby 3.1.</q></cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20200227064151/https://fallabs.com/qdbm/">"QDBM: Quick Database Manager"</a>. <i>fallabs.com</i>. 2006. Archived from <a rel="nofollow" class="external text" href="https://fallabs.com/qdbm/">the original</a> on 2020-02-27<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-02-27</span></span>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://tdb.samba.org/">"tdb: Main Page"</a>. <i>tdb.samba.org</i>.</cite></span>
</li>
<li id="cite_note-fuzz-10"><span class="mw-cite-backlink">^ <a href="#cite_ref-fuzz_10-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-fuzz_10-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFDebroux2018" class="citation web cs1">Debroux, Lionel (16 Jun 2018). <a rel="nofollow" class="external text" href="https://www.openwall.com/lists/oss-security/2018/06/17/1">"oss-security - Fun with DBM-type databases..."</a> <i>openwall.com</i>.</cite></span>
</li>
<li id="cite_note-deb-11"><span class="mw-cite-backlink">^ <a href="#cite_ref-deb_11-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-deb_11-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFSurý2014" class="citation mailinglist cs1">Surý, Ondřej (19 June 2014). <a rel="nofollow" class="external text" href="https://lists.debian.org/debian-devel/2014/06/msg00338.html">"New project goal: Get rid of Berkeley DB (post jessie)"</a>. <i>debian-devel</i> (Mailing list). <a href="Debian" title="Debian">Debian</a>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Bibliography">Bibliography</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239549316">
/* start https://en.wikipedia.org/ */


.mw-parser-output .refbegin{margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li{margin-left:0;padding-left:3.2em;text-indent:-3.2em}.mw-parser-output .refbegin-hanging-indents ul,.mw-parser-output .refbegin-hanging-indents ul li{list-style:none}@media(max-width:720px){.mw-parser-output .refbegin-hanging-indents>ul>li{padding-left:1.6em;text-indent:-1.6em}}.mw-parser-output .refbegin-columns{margin-top:0.3em}.mw-parser-output .refbegin-columns ul{margin-top:0}.mw-parser-output .refbegin-columns li{page-break-inside:avoid;break-inside:avoid-column}@media screen{.mw-parser-output .refbegin{font-size:90%}}


/* end https://en.wikipedia.org/ */
</style><div class="refbegin" style="">
<ul><li><cite id="CITEREFHazel2001" class="citation book cs1">Hazel, Philip (2001). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=AcLDAQAAQBAJ&amp;pg=PT500"><i>Exim: The Mail Transfer Agent</i></a>. O'Reilly.</cite></li>
<li><cite id="CITEREFLaddO'Donnell2001" class="citation book cs1">Ladd, Eric; O'Donnell, Jim (2001). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=NLc_TQiWvo4C&amp;pg=PA823"><i>Using XHTML, XML and Java 2: Platinum Edition</i></a>. Que. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>9780789724731</bdi>.</cite></li>
<li><cite id="CITEREFKew2007" class="citation book cs1">Kew, Nick (2007). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=HTo_AmTpQPMC&amp;pg=PA80"><i>The Apache Modules Book: Application Development with Apache</i></a>. Prentice Hall Professional. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>9780132704502</bdi>.</cite></li></ul>
</div>
<ul><li><a rel="nofollow" class="external text" href="https://apr.apache.org/docs/apr-util/0.9/group__APR__Util__DBM__SDBM.html">SDBM library</a> @<a href="The_Apache_Software_Foundation" title="The Apache Software Foundation">Apache</a></li>
<li><cite id="CITEREFMatthewStones2008" class="citation book cs1">Matthew, Neil; Stones, Richard (2008). "Databases". <a rel="nofollow" class="external text" href="https://books.google.com/books?id=vvuzDziOMeMC&amp;pg=PT270"><i>Beginning Linux Programming</i></a>. Wiley.</cite></li>
<li><cite id="CITEREFOlsonBosticSeltzer1999" class="citation web cs1">Olson, Michael A.; Bostic, Keith; Seltzer, Margo (1999). <a rel="nofollow" class="external text" href="http://www.usenix.org/events/usenix99/full_papers/olson/olson.pdf">"Berkeley DB"</a> <span class="cs1-format">(PDF)</span>. <i>Proceedings of the FREENIX Track:1999 USENIX Annual Technical Conference</i>.</cite></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-06-21" href="https://en.wikipedia.org/wiki/?title=DBM_(computing)&amp;oldid=1296645435">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>